package com.gpframework.module.wages.domain.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import javax.validation.constraints.*;

import java.util.Date;
import java.math.BigDecimal;

/**
 * @ClassName GzPersonnelVersionAdd
 * @Author gpframework
 * @Date 2024-01-26
 * @Version 1.0.0
 * @Description 人事版本Add对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GzPersonnelVersionAdd {
    private static final long serialVersionUID = 1L;

    /** 档口以及办公室人员工资条id */
    @ApiModelProperty("档口以及办公室人员工资条id")
    private Long officeSalaryId;

    /** 中转人员工资条id */
    @ApiModelProperty("中转人员工资条id")
    private Long transferId;

    /** 仓库人员工资条id */
    @ApiModelProperty("仓库人员工资条id")
    private Long warehousePersonnelId;

    /** 月份 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("月份")
    private Date month;

    /** 部门 */
    @ApiModelProperty("部门")
    private String departmentName;

    /** 名字 */
    @ApiModelProperty("名字")
    private String name;

    /** 基本工资 */
    @ApiModelProperty("基本工资")
    private BigDecimal baseSalary;

    /** 计薪天数 */
    @ApiModelProperty("计薪天数")
    private Double salaryDays;

    /** 公司带薪假 */
    @ApiModelProperty("公司带薪假")
    private Double paidLeave;

    /** 实际出勤天数 */
    @ApiModelProperty("实际出勤天数")
    private Double attendanceDays;

    /** 缺勤天数 */
    @ApiModelProperty("缺勤天数")
    private Double absenceDays;

    /** 出勤工资 */
    @ApiModelProperty("出勤工资")
    private BigDecimal attendanceSalary;

    /** 公司带薪假工资 */
    @ApiModelProperty("公司带薪假工资")
    private BigDecimal paidLeaveSalary;

    /** 国家节假日带薪工资 */
    @ApiModelProperty("国家节假日带薪工资")
    private BigDecimal holidayWages;

    /** (（加班小时）加班平时) */
    @ApiModelProperty("(（加班小时）加班平时)")
    private Double overtimeUsually;

    /** （（加班小时）加班周六日） */
    @ApiModelProperty("（（加班小时）加班周六日）")
    private Double overtimeWeek;

    /** （（加班小时）加班节日） */
    @ApiModelProperty("（（加班小时）加班节日）")
    private Double overtimeHoliday;

    /** ((加班工资)加班平时) */
    @ApiModelProperty("((加班工资)加班平时)")
    private BigDecimal overtimePayUsually;

    /** ((加班工资)加班周六日) */
    @ApiModelProperty("((加班工资)加班周六日)")
    private BigDecimal overtimePayWeek;

    /** ((加班工资)加班节日) */
    @ApiModelProperty("((加班工资)加班节日)")
    private BigDecimal overtimePayHoliday;

    /** 岗位绩效奖金 */
    @ApiModelProperty("岗位绩效奖金")
    private BigDecimal jobPerformanceBonus;

    /** 全勤奖 */
    @ApiModelProperty("全勤奖")
    private BigDecimal fullAttendanceAward;

    /** 业绩奖 */
    @ApiModelProperty("业绩奖")
    private BigDecimal performanceAward;

    /** 购买社保 */
    @ApiModelProperty("购买社保")
    private BigDecimal purchaseSocialSecurity;

    /** 五险一金补贴 */
    @ApiModelProperty("五险一金补贴")
    private BigDecimal fiveOneSubsidy;

    /** 应发工资 */
    @ApiModelProperty("应发工资")
    private BigDecimal salariesPayable;

    /** 违纪赔偿 */
    @ApiModelProperty("违纪赔偿")
    private BigDecimal compensateFor;

    /** 餐费扣款 */
    @ApiModelProperty("餐费扣款")
    private BigDecimal mealFeeDeduction;

    /** 工资实发 */
    @ApiModelProperty("工资实发")
    private BigDecimal actualSalaryPaid;

    /** 签收人 */
    @ApiModelProperty("签收人")
    private String signee;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remarks;

    /** 排序 */
    @ApiModelProperty("排序")
    private Long sort;

}
